Maps for UWP を使用すると、簡単にオフラインマップを利用できます。
このサンプルには、次のカスタム OfflineMapsSource クラスの実装が含まれています。
| C# |
コードのコピー
|
|---|---|
public class OfflineMapsSource : C1MultiScaleTileSource
{
private const string uriFormat = @"ms-appx:/Resources/OfflineMaps/
{Z}/{X}/{Y}.png";
public OfflineMapsSource()
: base(0x8000000, 0x8000000, 0x100, 0x100, 0)
{ }
protected override void GetTileLayers(int tileLevel, int tilePositionX,
int tilePositionY, IList<object> source)
{
if (tileLevel > 8)
{
var zoom = tileLevel - 8;
var uri = uriFormat;uri = uri.Replace("{X}", tilePositionX.ToString());
uri = uri.Replace("{Y}", tilePositionY.ToString());
uri = uri.Replace("{Z}", zoom.ToString());
source.Add(new Uri(uri));
}
}
}
|
|
この実装クラスは、ローカルの Resource フォルダからタイル画像をロードします。このクラスは C1MultiScaleTileSource を継承します。
オフラインマップでカスタムタイルを使用するには、C1Maps の Source プロパティを設定する必要があります。このサンプルでは、OnMapsLoaded イベントが作成され、このイベント内で Source プロパティが設定されます。
| C# |
コードのコピー
|
|---|---|
void OnMapsLoaded(object sender, RoutedEventArgs e) { this.maps.Source = new OfflineMapsSource(); } |
|
このように、オフライン C1Maps コントロールの作成は簡単です。